템플릿을 사용하면, 자동으로 타입에 맞추어 전략을 적용할 수 있다.
전략 디자인 패턴은 알고리즘의 골격만을 정의하고, 세부 구현은 컴포지션으로서특정 전략을 선택적으로 채워넣을 수 있다.
- 동적 전략:
사용될 전략을 포인터 또는 참조자로서 가진다. 전략을 바꾸고 싶은 경우, 참조를 변경한다.
- 정적 전략:
컴파일 시점에 전략이 선택되어 고정되도록 한다. 나중에 전략을 바꾸는 것이 불가능함
std::variant로 전략을 전달할 경우, 이외의 전략의 목록을 제한할 수 있다.